package com.eternal.util.tree.entity;

import com.alibaba.fastjson.JSON;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;


/**
 * 树结构实体类
 *
 * @param <T>
 */
@Data
public class Tree<T> {


    /**
     * 节点ID
     */
    private String id;

    /**
     * 显示节点文本
     */
    private String title;


    /**
     * 节点状态，open closed
     */
    private Boolean expand = false;


    /**
     * 节点是否被选中 true false
     */
    private Boolean checked = false;


    /**
     * 节点属性
     */
    private List<Map<String, Object>> attributes;

    /**
     * 节点的子节点
     */
    private List<Tree<T>> children = new ArrayList<Tree<T>>();

    /**
     * 父ID
     */
    private String parentId;

    /**
     * 是否有父节点
     */
    private Boolean isParent = false;


    /**
     * 是否有子节点
     */
    private Boolean isChildren = false;


    @Override
    public String toString() {
        return JSON.toJSONString(this);

    }


}